{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## _*Running simulations with noise and measurement error mitigation in Aqua*_\n",
    "\n",
    "This notebook demonstrates using the [Qiskit Aer](https://qiskit.org/aer) `qasm_simulator` to run a simulation with noise, based on a noise model, in Aqua. This can be useful to investigate behavior under different noise conditions. Aer not only allows you to define your own custom noise model, but also allows a noise model to be easily created based on the properties of a real quantum device. The latter is what this notebook will demonstrate since the goal is to show how to do this in Aqua not how to build custom noise models.\n",
    "\n",
    "On the other hand, [Qiskit Ignis](https://qiskit.org/ignis) provides a solution to mitigate the measurement error when running on a noise simulation or a real quantum device.\n",
    "\n",
    "Further information on Qiskit Aer noise model can be found in the online Qiskit Aer documentation [here](https://qiskit.org/documentation/aer/device_noise_simulation.html) as well as in the [Qiskit Aer tutorials](https://github.com/Qiskit/qiskit-iqx-tutorials/tree/master/qiskit/advanced/aer).\n",
    "\n",
    "Further information on  measurement error mitigation in Qiskit Ignis can be found in the [Qiskit Ignis tutorial](https://github.com/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/advanced/ignis/measurement_error_mitigation.ipynb).\n",
    "\n",
    "Note: this tutorial requires Qiskit Aer and Qiskit Ignis if you intend to run it. This can be installed using pip if you do not have it installed using `pip install qiskit-aer qiskit-ignis`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pylab\n",
    "\n",
    "from qiskit import Aer, IBMQ\n",
    "from qiskit.aqua import QuantumInstance, aqua_globals\n",
    "from qiskit.aqua.algorithms import VQE, NumPyMinimumEigensolver\n",
    "from qiskit.aqua.components.optimizers import SPSA\n",
    "from qiskit.circuit.library import TwoLocal\n",
    "from qiskit.aqua.operators import WeightedPauliOperator\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Noisy simulation will be demonstrated here with VQE, finding the minimum (ground state) energy of an Hamiltonian, but the technique applies to any quantum algorithm from Aqua.\n",
    "\n",
    "So for VQE we need a qubit operator as input. Here we will take a set of paulis that were originally computed by qiskit-chemistry, for an H2 molecule, so we can quickly create an Operator."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of qubits: 2\n"
     ]
    }
   ],
   "source": [
    "pauli_dict = {\n",
    "    'paulis': [{\"coeff\": {\"imag\": 0.0, \"real\": -1.052373245772859}, \"label\": \"II\"},\n",
    "              {\"coeff\": {\"imag\": 0.0, \"real\": 0.39793742484318045}, \"label\": \"ZI\"},\n",
    "              {\"coeff\": {\"imag\": 0.0, \"real\": -0.39793742484318045}, \"label\": \"IZ\"},\n",
    "              {\"coeff\": {\"imag\": 0.0, \"real\": -0.01128010425623538}, \"label\": \"ZZ\"},\n",
    "              {\"coeff\": {\"imag\": 0.0, \"real\": 0.18093119978423156}, \"label\": \"XX\"}\n",
    "              ]\n",
    "}\n",
    "\n",
    "qubit_op = WeightedPauliOperator.from_dict(pauli_dict)\n",
    "num_qubits = qubit_op.num_qubits\n",
    "print('Number of qubits: {}'.format(num_qubits))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As the above problem is still easily tractable classically we can use NumPyMinimumEigensolver to compute a reference value so we can compare later the results. \n",
    "\n",
    "<span style=\"font-size:0.9em\">_(A copy of the operator is used below as what is passed to NumPyMinimumEigensolver will be converted to matrix form and we want the operator we use later, on the Aer qasm simuator, to be in paulis form.)_</span>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reference value: -1.8572750302023797\n"
     ]
    }
   ],
   "source": [
    "ee = NumPyMinimumEigensolver(qubit_op.copy())\n",
    "result = ee.run()\n",
    "ref = result.eigenvalue.real\n",
    "print('Reference value: {}'.format(ref))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Performance *without* noise\n",
    "\n",
    "First we will run on the simulator without adding noise to see the result. I have created the backend and QuantumInstance, which holds the backend as well as various other run time configuration, which are defaulted here, so it easy to compare when we get to the next section where noise is added. There is no attempt to mitigate noise or anything in this notebook so the latter setup and running of VQE is identical."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "VQE on Aer qasm simulator (no noise): -1.8609307153832289\n",
      "Delta from reference: -0.003655685180849133\n"
     ]
    }
   ],
   "source": [
    "backend = Aer.get_backend('qasm_simulator')\n",
    "quantum_instance = QuantumInstance(backend=backend, seed_simulator=167, seed_transpiler=167) \n",
    "\n",
    "counts = []\n",
    "values = []\n",
    "def store_intermediate_result(eval_count, parameters, mean, std):\n",
    "    counts.append(eval_count)\n",
    "    values.append(mean)\n",
    "\n",
    "aqua_globals.random_seed = 167\n",
    "optimizer = SPSA(maxiter=200)\n",
    "var_form = TwoLocal(num_qubits, 'ry', 'cz')\n",
    "vqe = VQE(qubit_op, var_form, optimizer, callback=store_intermediate_result)\n",
    "vqe_result = vqe.run(quantum_instance)\n",
    "print('VQE on Aer qasm simulator (no noise): {}'.format(vqe_result.eigenvalue.real))\n",
    "print('Delta from reference: {}'.format(vqe_result.eigenvalue.real-ref))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We captured the energy values above during the convergence so we can see what went on in the graph below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Convergence with no noise')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.rcParams['figure.figsize'] = (12, 4)\n",
    "pylab.plot(counts, values)\n",
    "pylab.xlabel('Eval count')\n",
    "pylab.ylabel('Energy')\n",
    "pylab.title('Convergence with no noise')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Performance *with* noise\n",
    "\n",
    "Now we will add noise. Here we will create a noise model for Aer from an actual device. You can create custom noise models with Aer but that goes beyond the scope of this notebook. Links to further information on Aer noise model, for those that may be interested in doing this, were given in instruction above.\n",
    "\n",
    "First we need to get an actual device backend and from its `configuration` and `properties` we can   setup a coupling map and a noise model to match the device. While we could leave the simulator with the default all to all map, this shows how to set the coupling map too. Note: We can also use this coupling map as the entanglement map for the variational form if we choose.\n",
    "\n",
    "Note: simulation with noise takes significantly longer than without noise."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/manoel/projects/Quantum/qiskit-ibmq-provider/qiskit/providers/ibmq/ibmqfactory.py:192: UserWarning: Timestamps in IBMQ backend properties, jobs, and job results are all now in local time instead of UTC.\n",
      "  warnings.warn('Timestamps in IBMQ backend properties, jobs, and job results '\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NoiseModel:\n",
      "  Basis gates: ['cx', 'id', 'u2', 'u3']\n",
      "  Instructions with noise: ['cx', 'id', 'u2', 'measure', 'u3']\n",
      "  Qubits with noise: [0, 1, 2, 3, 4]\n",
      "  Specific qubit errors: [('id', [0]), ('id', [1]), ('id', [2]), ('id', [3]), ('id', [4]), ('u2', [0]), ('u2', [1]), ('u2', [2]), ('u2', [3]), ('u2', [4]), ('u3', [0]), ('u3', [1]), ('u3', [2]), ('u3', [3]), ('u3', [4]), ('cx', [0, 1]), ('cx', [0, 2]), ('cx', [1, 0]), ('cx', [1, 2]), ('cx', [2, 0]), ('cx', [2, 1]), ('cx', [2, 3]), ('cx', [2, 4]), ('cx', [3, 2]), ('cx', [3, 4]), ('cx', [4, 2]), ('cx', [4, 3]), ('measure', [0]), ('measure', [1]), ('measure', [2]), ('measure', [3]), ('measure', [4])]\n",
      "VQE on Aer qasm simulator (with noise): -1.7676401106245385\n",
      "Delta from reference: 0.0896349195778412\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "from qiskit.providers.aer.noise import NoiseModel\n",
    "from qiskit.providers.ibmq.exceptions import IBMQAccountCredentialsNotFound\n",
    "\n",
    "backend = Aer.get_backend('qasm_simulator')\n",
    "counts1 = []\n",
    "values1 = []\n",
    "noise_model = None\n",
    "try:\n",
    "    os.environ['QISKIT_IN_PARALLEL'] = 'TRUE'\n",
    "    provider = IBMQ.load_account()\n",
    "    device = provider.get_backend('ibmqx2')\n",
    "    coupling_map = device.configuration().coupling_map\n",
    "    noise_model = NoiseModel.from_backend(device)\n",
    "    basis_gates = noise_model.basis_gates\n",
    "\n",
    "    print(noise_model)\n",
    "\n",
    "    quantum_instance = QuantumInstance(backend=backend, seed_simulator=167, seed_transpiler=167,\n",
    "                                       noise_model=noise_model,)\n",
    "\n",
    "    def store_intermediate_result1(eval_count, parameters, mean, std):\n",
    "        counts1.append(eval_count)\n",
    "        values1.append(mean)\n",
    "\n",
    "    aqua_globals.random_seed = 167\n",
    "    optimizer = SPSA(maxiter=200)\n",
    "    var_form = TwoLocal(num_qubits, 'ry', 'cz')\n",
    "    vqe = VQE(qubit_op, var_form, optimizer, callback=store_intermediate_result1)\n",
    "    vqe_result1 = vqe.run(quantum_instance)\n",
    "    print('VQE on Aer qasm simulator (with noise): {}'.format(vqe_result1.eigenvalue.real))\n",
    "    print('Delta from reference: {}'.format(vqe_result1.eigenvalue.real-ref))\n",
    "except IBMQAccountCredentialsNotFound as ex:\n",
    "    print(str(ex))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "if counts1 or values1:\n",
    "    pylab.rcParams['figure.figsize'] = (12, 4)\n",
    "    pylab.plot(counts1, values1)\n",
    "    pylab.xlabel('Eval count')\n",
    "    pylab.ylabel('Energy')\n",
    "    pylab.title('Convergence with noise')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Performance *with* noise and measurement error mitigation\n",
    "\n",
    "Now we will add method for measurement error mitigation, which increases the fidelity of measurement. Here we choose `CompleteMeasFitter` to mitigate the measurement error. The calibration matrix will be auto-refresh every 30 minute (default value).\n",
    "\n",
    "Note: simulation with noise takes significantly longer than without noise."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "VQE on Aer qasm simulator (with noise and measurement error mitigation): (-1.837664806892775+0j)\n",
      "Delta from reference: 0.019610223309604713\n"
     ]
    }
   ],
   "source": [
    "from qiskit.ignis.mitigation.measurement import CompleteMeasFitter\n",
    "\n",
    "counts1 = []\n",
    "values1 = []\n",
    "if noise_model is not None:\n",
    "    quantum_instance = QuantumInstance(backend=backend, seed_simulator=167, seed_transpiler=167,\n",
    "                                       noise_model=noise_model, \n",
    "                                       measurement_error_mitigation_cls=CompleteMeasFitter, \n",
    "                                       cals_matrix_refresh_period=30)\n",
    "\n",
    "    def store_intermediate_result1(eval_count, parameters, mean, std):\n",
    "        counts1.append(eval_count)\n",
    "        values1.append(mean)\n",
    "\n",
    "    aqua_globals.random_seed = 167\n",
    "    optimizer = SPSA(maxiter=200)\n",
    "    var_form = TwoLocal(num_qubits, 'ry', 'cz')\n",
    "    vqe = VQE(qubit_op, var_form, optimizer, callback=store_intermediate_result1)\n",
    "    vqe_result1 = vqe.run(quantum_instance)\n",
    "    print('VQE on Aer qasm simulator (with noise and measurement error mitigation): {}'.format(vqe_result1.eigenvalue))\n",
    "    print('Delta from reference: {}'.format(vqe_result1.eigenvalue.real-ref))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "if counts1 or values1:\n",
    "    pylab.rcParams['figure.figsize'] = (12, 4)\n",
    "    pylab.plot(counts1, values1)\n",
    "    pylab.xlabel('Eval count')\n",
    "    pylab.ylabel('Energy')\n",
    "    pylab.title('Convergence with noise, enabling measurement error mitigation')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
